package com.example.handheld4_gsignal_app.network;

import com.example.handheld4_gsignal_app.data.models.SignalCollectionRequest;
import com.example.handheld4_gsignal_app.data.models.SignalCollectionResponse;
import com.example.handheld4_gsignal_app.data.models.DeviceInfoRequest;
import com.example.handheld4_gsignal_app.data.models.DeviceInfoResponse;
import com.example.handheld4_gsignal_app.data.models.SignalStatisticsResponse;

import java.util.List;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;

/**
 * API服务接口 - 定义与后端通信的接口
 */
public interface ApiService {
    
    /**
     * 健康检查
     */
    @GET("health")
    Call<ApiResponse<String>> healthCheck();
    
    /**
     * 创建信号采集记录
     */
    @POST("api/signals")
    Call<SignalCollectionResponse> createSignalCollection(@Body SignalCollectionRequest request);
    
    /**
     * 获取信号采集记录列表
     */
    @GET("api/signals")
    Call<List<SignalCollectionResponse>> getSignalCollections(
            @Query("device_id") String deviceId,
            @Query("start_time") String startTime,
            @Query("end_time") String endTime,
            @Query("limit") int limit,
            @Query("offset") int offset
    );
    
    /**
     * 获取设备信号统计信息
     */
    @GET("api/signals/statistics/{device_id}")
    Call<SignalStatisticsResponse> getSignalStatistics(@Path("device_id") String deviceId);
    
    /**
     * 注册设备信息
     */
    @POST("api/devices")
    Call<DeviceInfoResponse> registerDevice(@Body DeviceInfoRequest request);
    
    /**
     * 获取设备信息
     */
    @GET("api/devices/{device_id}")
    Call<DeviceInfoResponse> getDeviceInfo(@Path("device_id") String deviceId);
}